دسته بندی ها
21:43 1398/09/14

حذف پروسیجر (Procedure) از مدل داده ای در Entity Framework

مشخصات سوال کننده :
کاربر : pedram_khan     امتیاز کاربر : 277     رتبه کاربر : 6
دسته بندی : سی شارپ Vb.Net WPF Asp.net Mvc

به این سوال امتیاز بدهید    0
تعداد بازدید این سوال : 3730
پاسخ دهنده : Sowgandi 11:55 1398/09/15

سلام. دوست عزیز اگر این Procedure ها رو حذف هم نکنید هیچ مشکلی پیش نمیاد چون فضای زیادی رو توی پروژه اشغال نمیکنه. ولی برای حدف میتونی در قسمت Solution پروژه در کادر جست و جو نام sp خود رو جست و جو و پیدا کنید و سپس حذفش کنید. اگه از این طریق هم موفق نشدید کلا مدلتون رو حذف و دوباره تعریف کنید.

به این پاسخ امتیاز بدهید    0
امتیاز: 871 رتبه: 3
پاسخ دهنده : saedbfd 15:29 1398/09/15

آشنایی با کلاس DbContext

در تکنولوژی انتیتی فریم ورک چه Code First و چه مدل Database First کلاسی به نام DbContext وجود دارد که نماینده دیتابیس در نرم افزار می باشد. (البته دقت کنید که ممکن است این کلاس نام های مختلفی داشته باشد ولی در اکثر مواقع نام آن DbContext است و این کلاس از کلاس DbContext مشتق می شود.)

 

  public partial class Accounting_systemEntities : DbContext
    {
        public Accounting_systemEntities()
            : base("Accounting_Entities")
        {
        }
    }

 

همانطور که در مثال بالا مشاهده می کنید کلاسی به نام Accounting_systemEntities داریم که از کلاس DbContext مشتق می شود. پس به عبارتی این کلاس همان کلاس اصلی دیتابیس یا نماینده دیتابیس در پروژه ما می باشد.

 

کلاس DbContext شامل چه کدهایی می باشد

حالا باید ببینیم کلاس DbContext شامل چه اجزایی می شود. همانطور که گفتیم این کلاس نماینده دیتابیس می باشد. بنابراین تمامی اجزای دیتابیس شامل جداول، ویوها، Stored Procedure ها، توابع و ... را درون خود دارد. نکته مهمی که باید گفته شود اینکه نرم افزار یا وب سایت ما دیتابیس را از طریق این کلاس شناسایی می کند و در صورتی که اطلاعات این کلاس کم و زیاد شود باعث تغییر در نرم افزار خواهد شد.

 

کار با کلاس DbContext در مدل DB First

به تصویر زیر دقت کنید

 

آموزش انتیتی فریم ورک Db first

 

در مدل DB first و در مدل داده ای کلاسی به نام AutomationModel.Context.cs وجود دارد. (دقت کنید بخش اول این نام متناسب با پروژه شما ممکن است متفاوت باشد.) این همان کلاس Dbcontext پروژه شما می باشد. اگر این کلاس را باز کنید مشاهده خواهید کرد که تمامی جداول، ویوها، Sp ها و ... در این کلاس معرفی شده اند. دقت کنید که جداول دیتابیس فقط در این کلاس معرفی می شود و تعریف آنها در کلاسهای جداگانه می باشد.

 

حالا اگر شما قصد دارید هر SP را از پروژه خود حذف کنید کافیست نام آن Sp را در این کلاس پیدا کنید و آن را حذف نمایید.

 

حذف پروسیجر در انتیتی فریم ورک

 

مثلا در تصویر بالا یک Sp با نام Sp_Update_ExitDate در این کلاس پیدا کرده ایم . برای حذف میتوان کل کدهای این Sp را حذف کرد. در صورتی که کدهای این Sp حذف شود مشاهده خواهید کرد که در کدهای شما نیز دیگر این Sp وجود نخواهد داشت.

 

به این ترتیب به راحتی قادر خواهید بود که SP های اضافی را در پروژه خود در مدل DbFirst حذف کنید.

به این پاسخ امتیاز بدهید    0
امتیاز: 1654 رتبه: 1
برای ارسال پاسخ لطفا وارد حساب کاربری خود شوید.   ورود